Dynamic augmented reality media creation

ABSTRACT

A technique for dynamic augmented reality media creation includes an analysis of received reality data. Augmentation data is identified based on the analysis of the reality data, and then augmented reality content is generated and displayed to the user on a display. A capture module determines whether the reality data meets stored capture event criteria and, if the criteria is met, image content of the augmented reality content is captured.

BACKGROUND

Augmented reality generally refers to presenting real-world and virtualreality or augmentation data in a combined display to a user. Forexample, augmented reality systems may enhance real-world content byenhancing such content with computer-generated supplemental information.The augmentation information may be overlaid onto real-world images ordisplayed in a manner to enable the user to view both the real-worldcontent and the augmentation information in a combined view.

BRIEF SUMMARY

According to one aspect of the present disclosure a system and techniquefor dynamic augmented reality media creation is disclosed. The techniqueincludes an analysis of received reality data. Augmentation data isidentified based on the analysis of the reality data, and then augmentedreality content is generated and displayed to the user on a display. Acapture module determines whether the reality data meets stored captureevent criteria and, if the criteria is met, image content of theaugmented reality content is captured.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

For a more complete understanding of the present application, theobjects and advantages thereof, reference is now made to the followingdescriptions taken in conjunction with the accompanying drawings, inwhich:

FIG. 1 is an embodiment of a network of data processing systems in whichthe illustrative embodiments of the present disclosure may beimplemented;

FIG. 2 is an embodiment of a data processing system in which theillustrative embodiments of the present disclosure may be implemented;

FIG. 3 is a diagram illustrating an embodiment of a data processingsystem for dynamic augmented reality media creation in whichillustrative embodiments of the present disclosure may be implemented;and

FIG. 4 is a flow diagram illustrating an embodiment of a method fordynamic augmented reality media creation according to the presentdisclosure.

DETAILED DESCRIPTION

Embodiments of the present disclosure provide a method and technique fordynamic augmented reality media creation. For example, in someembodiments, the method and technique includes: analysis of the realitydata; generating augmented reality content; determining if the realitydata corresponds to predetermined capture event criteria; and responsiveto determining that the reality data corresponds to the predeterminedcapture event criteria, capturing the augmented reality content.Embodiments of the present disclosure enable the dynamic and automaticcreation/capture of augmented reality content (e.g., real-world contentoverlaid/supplemented with augmentation information). Embodiments of thepresent disclosure may evaluate the real-world events taking place aswell as augmentation information that will supplement the real-wordperception against certain predefined criteria to determine whether toinitiate the capture/storage of augmented reality content. The capturedaugmented reality content may be in the form of video content,screenshots/images, audio, or otherwise. Further, embodiments of thepresent disclosure may spawn multiple threads to concurrently capturesuch augmented reality content as such content is being rendered on thedevice.

As will be appreciated by one skilled in the art, aspects of the presentdisclosure may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present disclosure may take theform of an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present disclosure may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer usable or computer readablemedium(s) may be utilized. The computer readable medium may be acomputer readable signal medium or a computer readable storage medium. Acomputer readable storage medium may be, for example but not limited to,an electronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing. More specific examples (a non-exhaustive list) of thecomputer readable storage medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent disclosure may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present disclosure are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of thedisclosure. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide processes for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

With reference now to the Figures and in particular with reference toFIGS. 1-2, exemplary diagrams of data processing environments areprovided in which illustrative embodiments of the present disclosure maybe implemented. It should be appreciated that FIGS. 1-2 are onlyexemplary and are not intended to assert or imply any limitation withregard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environments may bemade.

FIG. 1 is a pictorial representation of a network of data processingsystems in which illustrative embodiments of the present disclosure maybe implemented. Network data processing system 100 is a network ofcomputers in which the illustrative embodiments of the presentdisclosure may be implemented. Network data processing system 100contains network 130, which is the medium used to provide communicationslinks between various devices and computers connected together withinnetwork data processing system 100. Network 130 may include connections,such as wire, wireless communication links, or fiber optic cables.

In some embodiments, server 140 and server 150 connect to network 130along with data store 160. Server 140 and server 150 may be, forexample, IBM System p® servers. In addition, clients 110 and 120 connectto network 130. Clients 110 and 120 may be, for example, personalcomputers or network computers. In the depicted example, server 140provides data and/or services such as, but not limited to, data files,operating system images, and applications to clients 110 and 120.Network data processing system 100 may include additional servers,clients, and other devices.

In the depicted example, network data processing system 100 is theInternet with network 130 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers, consisting of thousands of commercial, governmental,educational and other computer systems that route data and messages. Ofcourse, network data processing system 100 also may be implemented as anumber of different types of networks, such as for example, an intranet,a local area network (LAN), or a wide area network (WAN). FIG. 1 isintended as an example, and not as an architectural limitation for thedifferent illustrative embodiments.

FIG. 2 is an embodiment of a data processing system 200 such as, but notlimited to, client 110 and/or server 140 in which an embodiment of asystem for dynamic augmented reality media creation according to thepresent disclosure may be implemented. In this embodiment, dataprocessing system 200 includes a bus or communications fabric 202, whichprovides communications between processor unit 204, memory 206,persistent storage 208, communications unit 210, input/output (I/O) unit212, and display 214.

Processor unit 204 serves to execute instructions for software that maybe loaded into memory 206. Processor unit 204 may be a set of one ormore processors or may be a multi-processor core, depending on theparticular implementation. Further, processor unit 204 may beimplemented using one or more heterogeneous processor systems in which amain processor is present with secondary processors on a single chip. Asanother illustrative example, processor unit 204 may be a symmetricmulti-processor system containing multiple processors of the same type.

In some embodiments, memory 206 may be a random access memory or anyother suitable volatile or non-volatile storage device. Persistentstorage 208 may take various forms depending on the particularimplementation. For example, persistent storage 208 may contain one ormore components or devices. Persistent storage 208 may be a hard drive,a flash memory, a rewritable optical disk, a rewritable magnetic tape,or some combination of the above. The media used by persistent storage208 also may be removable such as, but not limited to, a removable harddrive.

Communications unit 210 provides for communications with other dataprocessing systems or devices. In these examples, communications unit210 is a network interface card. Modems, cable modem and Ethernet cardsare just a few of the currently available types of network interfaceadapters. Communications unit 210 may provide communications through theuse of either or both physical and wireless communications links.

Input/output unit 212 enables input and output of data with otherdevices that may be connected to data processing system 200. In someembodiments, input/output unit 212 may provide a connection for userinput through a keyboard and mouse. Further, input/output unit 212 maysend output to a printer. Display 214 provides a mechanism to displayinformation to a user.

Instructions for the operating system and applications or programs arelocated on persistent storage 208. These instructions may be loaded intomemory 206 for execution by processor unit 204. The processes of thedifferent embodiments may be performed by processor unit 204 usingcomputer implemented instructions, which may be located in a memory,such as memory 206. These instructions are referred to as program code,computer usable program code, or computer readable program code that maybe read and executed by a processor in processor unit 204. The programcode in the different embodiments may be embodied on different physicalor tangible computer readable media, such as memory 206 or persistentstorage 208.

Program code 216 is located in a functional form on computer readablemedia 218 that is selectively removable and may be loaded onto ortransferred to data processing system 200 for execution by processorunit 204. Program code 216 and computer readable media 218 form computerprogram product 220 in these examples. In one example, computer readablemedia 218 may be in a tangible form, such as, for example, an optical ormagnetic disc that is inserted or placed into a drive or other devicethat is part of persistent storage 208 for transfer onto a storagedevice, such as a hard drive that is part of persistent storage 208. Ina tangible form, computer readable media 218 also may take the form of apersistent storage, such as a hard drive, a thumb drive, or a flashmemory that is connected to data processing system 200. The tangibleform of computer readable media 218 is also referred to as computerrecordable storage media. In some instances, computer readable media 218may not be removable.

Alternatively, program code 216 may be transferred to data processingsystem 200 from computer readable media 218 through a communicationslink to communications unit 210 and/or through a connection toinput/output unit 212. The communications link and/or the connection maybe physical or wireless in the illustrative examples.

The different components illustrated for data processing system 200 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 200. Other components shown in FIG. 2 can be variedfrom the illustrative examples shown. For example, a storage device indata processing system 200 is any hardware apparatus that may storedata. Memory 206, persistent storage 208, and computer readable media218 are examples of storage devices in a tangible form.

FIG. 3 is an illustrative embodiment of a system 300 for dynamicaugmented reality media creation. System 300 may be implemented on dataprocessing systems or platforms such as, but not limited to clients 110and/or 120, system 200, or at other data processing system locations. Inthe embodiment illustrated in FIG. 3, system 300 comprises an augmentedreality device 302 and an augmented reality system 304. Augmentedreality device 302 may comprise any type of device forreceiving/analyzing reality content (real-world data, such as visual,audio and/or other types of real-world perceptible information) andgenerating/displaying augmentation data (e.g., virtual reality data) inconnection with the reality content. For example, augmented realitydevice 302 may comprise, but not be limited to, a headset,glasses/goggles, a smartphone, a tablet computer, a mobile device, orother type of device operable to display augmented content in connectionreal-word visual content. Augmented reality system 304 may comprise anytype of computing and/or server system (e.g., remote from device 302)providing augmentation data 306 for augmenting reality content on device302. Augmentation data 306 may include, but not be limited to, sound,text, graphic content, video content, and/or global positioning system(GPS) data. For example, in some embodiments, augmentation data 306 maybe streamed in real-time over a communications network 308 to device 302based on reality content experienced/detected by device 302.

In FIG. 3, device 302 includes a processor unit 312, an imaging device314, a transceiver 316, a display device 318, a speaker 319, one or moresensors 320, and a memory 322. Imaging device 314 may comprise any typeof device for receiving reality content (e.g., a camera). Transceiver316 is operable to enable wireless communications between device 302 andanother entity/source such as, but not limited to, augmented realitysystem 304, a telephonic communications system, a personal computingsystem, a GPS network, etc. Display device 318 may comprise any type ofdevice enabling the display/presentation of reality content and/oraugmented reality content (i.e., reality content augmented withaugmentation data/content). Display device 318 may comprise a liquidcrystal display (LCD) device, image projection device (e.g., forprojecting augmentation content/data onto a screen, glasses/goggleslens, and/or otherwise displaying augmentation content (alone or incombination with reality content) within the field of view of a user ofdevice 302). Sensor(s) 320 may comprise any type of sensor for detectingenvironmental conditions relative to device 302 such as, but not limitedto, orientation, motion/movement, GPS data/signals, etc.

In the embodiment illustrated in FIG. 3, memory 322 includes anaugmentation module 330, a capture module 332, a communication module334, a rendering engine 336 and a frame buffer 338. Augmentation module330 is configured to analyze reality content 340 detected/received bydevice (e.g., reality or real-world image data acquired via imagingdevice 314 or another type of real-world data obtained by other types ofdevices, such as real-world audio content), determine, request and/oridentify augmentation data 342 for augmenting reality content 340 andgenerating/displaying augmented reality content 344. Augmented realitycontent 344 may represent a combined representation of augmented content(e.g., combining augmentation data 342 with reality content 340 andpresenting/displaying the combined content (e.g., on display device 318,displaying/projecting/overlaying augmentation data 342 into a field ofview of a user such that augmentation data 342 is presented to the userin combination with real-world content perceived by the user, presentingaugmentation data 342 in the form of audio content via speaker 319 orother audio component, etc.)). Capture module 332 is configured tocapture/record augmented reality content 344 in response to a user'sdesired criteria. Communication module 334 is configured to enablecommunications (e.g., wired and/or wirelessly) between device 301 andanother system/device (e.g., augmented reality system 304, a telephoniccommunications system, etc.). Rendering engine 336 is configured torendering image content (e.g., video and/or still/screen shot imagedata). Augmentation module 330, capture module 332, communication module334 and/or rendering engine 336 may be implemented in any suitablemanner using known techniques that may be hardware-based,software-based, or some combination of both. For example, augmentationmodule 330, capture module 332, communication module 334 and/orrendering engine 336 may comprise software, logic and/or executable codefor performing various functions as described herein (e.g., residing assoftware and/or an algorithm running on a processor unit, hardware logicresiding in a processor or other type of logic chip, centralized in asingle integrated circuit or distributed among different chips in a dataprocessing system).

In the embodiment illustrated in FIG. 3, memory 322 also includescapture configuration data 350. Capture configuration data 350 comprisesinformation associated with a user's desired criteria for real-time (ornear real-time) capturing/recording of augmented reality content 344.For example, in the illustrated embodiment, capture configuration data350 includes capture event criteria 352 indicating certain events that,if occur or are anticipated to occur, capture module 332 automaticallycaptures/records augmented reality content 344 and stores such contentas captured augmented reality content 360. Captured augmented realitycontent 360 may be in the form of a video clip of a set/predeterminedand/or variable duration (e.g., augmented video 362, which may havevisual and/or audio components), image snapshots/screen captures (e.g.,augmented images 364) or other types of data content (e.g., audio).Criteria 352 may correspond to real-world content (e.g., experiencing acertain event, such as an encounter with a particular person, detectinga favorite book, detecting a name of a street sign, detecting a name ofa restaurant, receiving a telephone call, etc.), augmented content(e.g., the presentation of augmentation data 342 in the form of atelephone number, an image of a person (e.g., a telephone caller), GPScoordinates, other book titles by a detected name of an author, etc.),and/or augmented reality content 344 (e.g., the combination ofreal-world content and augmentation content meeting a predefinedcriteria, such as real-word content a photograph of a musician incombination with augmented information of a sound clip of a musicalpiece performed by such musician). In some embodiments, capture module332 is configured to interface with augmentation module 330 to determinewhether reality content 340, augmentation data 342 and/or augmentedreality content 344 meets (or is likely to meet) criteria 352. Inresponse to reality content 340, augmentation data 342 and/or augmentedreality content 344 meeting (or anticipating it meeting) criteria 352,capture module 332 automatically (i.e., without further userintervention) captures/records augmented reality content 344 and storessuch captured content as captured augmented reality content 360.

As an illustrative example, consider that a user of device 302 iswalking down a street and views a restaurant sign. Augmentation module330 analyzes reality content 340 associated with image contentdetected/received via imaging device 314 corresponding to the viewedrestaurant sign and determines/accesses augmentation data 342 to displayaugmentation data 342/306 associated with such restaurant. Augmentationdata 342/306 may include information stored locally on device 302 and/orretrieved from an external source (e.g., augmented reality system 304).In this example, augmentation data 342/306 may include an address of therestaurant, the cuisine at the restaurant, a phone number of therestaurant, etc. Criteria 352 may indicate that in response to detectinga restaurant having a particular cuisine, capture module 332 shouldautomatically capture/record augmented reality content 344 associatedwith such restaurant. In this example, the captured augmented realitycontent 360 may comprise an augmented image 364 depicting an image of anexterior view of the restaurant along with augmentation data 342/306depicting a phone number and/or GPS coordinates of the restaurant.Captured augmented reality content 360 may be played back at a latertime, uploaded to a remote server, downloaded to another device, etc.

In some embodiments, capture module 332 captures/records augmentedreality content 344 prior to display/presentation to a user of device302. For example, in some embodiments, capture module 332 may interfacewith rendering engine 336 and/or frame buffer 338 to capture augmentedreality content 344 prior to its display/presentation (e.g., prior toits presentation on display device 318). In this manner, capture module332 may initiate recording/capturing of augmented reality content 344before a user of device would be presented with such augmented realitycontent 344, thereby ensuring the capture of such content (which mayotherwise be missed if the capture must be manually initiated inresponse to the user viewing the augmented reality content 344).

In some embodiments device 302 includes an interface 370 enabling a userto input capture configuration data 350 to device 302. For example,interface 370 may comprise a wireless interface 370 enabling a user towirelessly input/store/edit capture configuration data 350. Interface370 may enable a user of device 302 to input capture configuration data350 from another wireless device (e.g., a cellular telephone). Interface370 may also support non-wireless input of capture configuration data350. Interface 370 may be implemented in any suitable manner using knowntechniques that may be hardware-based, software-based, or somecombination of both. For example, interface 370 may comprise software,logic and/or executable code for performing various functions asdescribed herein (e.g., residing as software and/or an algorithm runningon a processor unit, hardware logic residing in a processor or othertype of logic chip, centralized in a single integrated circuit ordistributed among different chips in a data processing system).

In some embodiments, capture module 332 is configured to trigger thecapturing/recording of augmented reality content 344 on separatethreads. For example, in some embodiments, capture module 332 may beconfigured to launch one thread for capturing augmented video 362 andanother thread for capturing augmented images(s) 364. Thus, capturemodule 332 may be configured to cause the concurrent capture ofaugmented video and screenshot images, thereby alleviating the need toplay back recorded video content to thereafter create still images ofthe augmented content.

Embodiments of the present disclosure enable the dynamiccreation/capture of augmented reality content 344 in anticipation of anevent and/or augmentation content meeting criteria 352. For example, insome embodiments, if a user of device 302 enters a library, criteria 352may be configured to capture content if books and/or displays associatedwith one or more favorite authors are detected. In response to the userapproaching a section of books having authors listed alphabetically,augmentation module 330 may identify the names of authors on thedetected books and, as the user nears a name of a configured author,capture module 332 may initiate a capture of augmented reality content344. If after some predetermined time period criteria 352 does notmaterialize and/or augmentation module 330 does not detect realitycontent 340 associated with a configured author, capture module 332 maypurge/delete the captured/recorded content that ended up not matchingcriteria 352.

FIG. 4 is a flow diagram illustrating an embodiment of a method fordynamic augmented reality media creation. The method begins at block402, where reality content 340 is received. At block 404, augmentationmodule 330 analyzes the reality content 340. At block 406, augmentationmodule 330 determines and/or otherwise identifies augmentation data342/306 based on the detected reality content 340. In some embodiments,augmentation module 330 may interface with communication module 334 toinitiate communications with augmented reality system 304 todetermine/identify augmentation data 342/306 based on the real-wordcontent being experienced by device 302. At block 408, augmentationmodule 330 generates augmented reality content 344.

At decisional block 410, a determination is made whether reality content340 meets and/or anticipates capture event criteria 352. If so, themethod proceeds to block 418, where capture module 332 initiates acapture of augmented reality content 344. For example, capture module332 may interface with rendering engine 336 and/or frame buffer 338 toaccess/store augmented reality content 344 prior to presentation of suchcontent to the user of device 302. If at decisional block 410 it isdetermined that reality content 340 does not meet and/or anticipatecapture event criteria 352, the method proceeds to decisional block 414.At decisional block 414, a determination is made whether augmentationdata 342/306 meets and/or anticipates capture event criteria 352. If so,the method proceeds to block 418, where capture module 332 initiates acapture of augmented reality content 344. Thus, in the illustratedembodiment, real-world content and content derived to augment thereal-world content may be independently evaluated to determine whethersuch respective content meets (or appears that it will meet) criteria352. If at decisional block 414 it is determined that augmentation data342/306 does not meet and/or anticipate capture event criteria 352, themethod proceeds to decisional block 416. At decisional block 416, adetermination is made whether augmented reality content 344 meets and/oranticipates capture event criteria 352. If so, the method proceeds toblock 418, where capture module 332 initiates a capture of augmentedreality content 344. Thus, in the illustrated embodiment, thecombination of real-world content and content derived to augment thereal-world content may be evaluated to determine whether such respectivecontent meets (or appears that it will meet) criteria 352. If atdecisional block 416 it is determined that augmented reality content 344does not meet and/or anticipate capture event criteria 352, the methodproceeds to block 424.

At decisional block 420, a determination is made whether criteria 352has been met. For example, in some embodiments, capture module 332 maybe configured to initiate a capture of augmented reality content 344prior to and/or in anticipation of reality content 340, augmentationdata 342/306 and/or augmented reality content 344 meeting criteria 352.If criteria 352 was met, the method proceeds to block 424. If criteria352 was not met, the method proceeds to block 422, where capture module332 may cause the recently captured/stored augmented reality content 344that did not meet criteria 352 to be purged/discarded. At block 424,augmentation module 330 and/or capture module 332 continues evaluatingreality content 340, augmentation data 342/306 and/or augmented realitycontent 344. At block 426, the augmented reality content 344 isdisplayed/presented to the user of device 302.

Thus, embodiments of the present disclosure enable the dynamic andautomatic creation/capture of augmented reality content (e.g.,real-world content overlaid/supplemented with augmentation information).Embodiments of the present disclosure may evaluate the real-world eventstaking place as well as augmentation information that will supplementthe real-word perception against certain predefined criteria todetermine whether to initiate the capture/storage of augmented realitycontent. The captured augmented reality content may be in the form ofvideo content, screenshots/images, audio, or otherwise. Further,embodiments of the present disclosure may spawn multiple threads toconcurrently capture such augmented reality content as such content isbeing rendered on the device.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present disclosure has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the disclosure in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the disclosure. Theembodiment was chosen and described in order to best explain theprinciples of the disclosure and the practical application, and toenable others of ordinary skill in the art to understand the disclosurefor various embodiments with various modifications as are suited to theparticular use contemplated.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

What is claimed is:
 1. A method, comprising: receiving and storing, viaan interface of a device, capture event criteria; receiving realitydata; analyzing the reality data; identifying augmentation data based onthe analysis of the reality data; generating and displaying augmentedreality content to the user on a display of the device; determiningwhether the reality data meets the capture event criteria; andresponsive to the reality data meeting the capture event criteria,capturing image content of the augmented reality content.
 2. The methodof claim 1, wherein capturing the image content includes capturing avideo segment of the augmented reality content.
 3. The method of claim1, wherein capturing the image content includes capturing at least onean image snapshot of the augmented reality content.
 4. The method ofclaim 1, further comprising: anticipating whether the reality data willmeet the capture event criteria; responsive to anticipating that thereality data will meet the capture event criteria, initiating thecapturing of the image content of the augmented reality content; andresponsive to the reality data not meeting the capture event criteria,discarding the captured image content of the augmented reality content.5. The method of claim 1, capturing the image content includes capturingthe image data of the augmented reality content prior to the display ofthe augmented reality content.
 6. The method of claim 1, furthercomprising receiving the capture event criteria via a wirelessinterface.
 7. A method, comprising: receiving reality data as perceivedby a user; receiving capture event criteria; analyzing the reality data;identifying augmentation data based on the analysis of the reality data;projecting into a field of view of the user the augmentation data;determining if the reality data meets the capture event criteria; andresponsive to determining that the reality data meets the capture eventcriteria, capturing augmented reality content by capturing image data ofan overlay of the augmentation data onto the reality data beingperceived by the user.
 8. The method of claim 7, wherein capturingaugmented reality content includes capturing a video segment of theaugmented reality content.
 9. The method of claim 7, wherein capturingaugmented reality content includes capturing at least one snapshot imageof the augmented reality content.
 10. The method of claim 7, furthercomprising: anticipating whether the reality data will meet the captureevent criteria; responsive to anticipating that the reality data willmeet the capture event criteria, initiating the capturing of the imagecontent of the augmented reality content; and responsive to the realitydata not meeting the capture event criteria, discarding the capturedimage content of the augmented reality content.
 11. The method of claim7, further comprising capturing the image data of the augmented realitycontent prior to the display of the augmented reality content.
 12. Themethod of claim 7, further comprising wirelessly receiving the captureevent criteria.
 13. A method, comprising: receiving and storing, by adevice wearable by a user, capture event criteria; receiving, by thedevice, reality data; analyzing, by the device, the reality data;identifying augmentation data based on the analysis of the reality data;generating and displaying, on the device, augmented reality content tothe user; determining whether the reality data meets the capture eventcriteria; and responsive to the reality data meeting the capture eventcriteria, capturing image content of the augmented reality content. 14.The method of claim 13, further comprising retrieving the augmentationdata from a source external to the device.
 15. The method of claim 13,further comprising: anticipating whether that the reality data will meetthe capture event criteria; responsive to anticipating that the realitydata will meet the capture event criteria, initiating the capturing ofthe augmented reality content; and responsive to the reality data notmeeting the capture event criteria, discarding the captured augmentedreality content.
 16. The method of claim 13, further comprisingreceiving the capture event criteria via a wireless interface.
 17. Themethod of claim 13, further comprising concurrently capturing video andsnapshot images of the augmented reality content.
 18. The method ofclaim 13, further comprising determining whether the augmented realitycontent meets the capture event criteria.
 19. The method of claim 13,further comprising interfacing with a frame buffer to store theaugmented reality content prior to its presentation to the user.
 20. Themethod of claim 13, further comprising audibly presenting theaugmentation data to the user.